package com.sz.biz.csr.service;

import com.sz.biz.csr.entity.CsrAskBoardSchema;
import com.sz.biz.csr.dto.CsrAskBoardDetailDto;
import com.sz.biz.csr.dto.CsrAskBoardSchemaDto;
import com.sz.common.base.dto.QResultDto;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by xutao on 17/5/12.
 */
public interface CsrAskBoardSchemaService {

    /**
     * 新增客户问题主题--客户系统不登录的情况下调用此接口
     *
     * @param entry 新增的实体
     * @return
     */
    CsrAskBoardDetailDto save(CsrAskBoardSchema entry);

    /**
     * 删除问题单
     */
    void batchDelete(List<Integer> ids);

    /**
     * 获取客户问题列表
     */
    QResultDto getAskBoardSchemaList(String q, int pageIndex, int pageSize, String sortName,
                                     boolean isAsc, String language, Date beginTime, Date endTime,
                                     int customerId, int status, String customerName);

    /**
     * 修改客户问题主题
     */
    void update(CsrAskBoardSchema csrAskBoardSchema);

    /**
     *
     */
    void doneCsrAskBoardById(int id);

    /**
     * 凭借ID查找问题单
     */
    CsrAskBoardSchema findById(Integer id);

    /**
     *获取当天最大的序列号
     */
    Map<String,String> generateSerialNumber();

    /**
     *
     * 获取code列表
     *
     */
    QResultDto getCodeList(String q, int pageIndex, int pageSize, String sortName,
                           boolean isAsc, String language);

    /**
     *
     * 异步检查code是否存在
     */
    CsrAskBoardSchemaDto checkCodeExist(String code);

    /**
     * 新增客户问题主题--客户系统登录的情况下调用此接口
     *
     * @param entry 新增的实体
     * @return
     */
    Map saveForLogin(CsrAskBoardSchema entry);

    /**
     *
     * 获取未读消息数目
     */
    int getUnReadCount(Integer refCustomerId);

    /**
     *
     * 标记消息是否已读
     *
     */
    void flagForRead(List<Integer> ids);

}
